<?php
/**
 * App项目公共Action
 * 版权：0x999.com
 * Email:admin@0x999.com
 * Author:残缺的爱
 */
 class AppAction extends Action{
	 //各种缓存 比如当前登陆用户信息等
    public static $Cache = array();
	function _initialize(){
		 //初始化站点配置信息
        $this->initSite();
	}
	/**
     * 初始化站点配置信息
     */
    final protected function initSite() {
		//快速获取缓存F方法
        $Config = F("Config");
        if (!$Config) {
			//实例化已定义模型Config
            $Config = D("Config")->config_cache();
        }
        //网站访问地址
        define("SITEURL", $Config['siteurl']);
        self::$Cache['Config'] = $Config;
        foreach (self::$Cache['Config'] as $k => $v) {
            define('CONFIG_' . strtoupper($k), $v);
        }
        /*
         * 模块绑定域名相关
         * 前台模板，比如JS调用，建议使用 {$config_siteurl}，因为如果模块有绑定域名
         * 使用{$config.siteurl}会造成JS跨域等等问题。
        */
        if (C("App_Http_Url")) {
            $config_siteurl = C("App_Http_Url") . "/";
            //用于在程序中调用
            define("CONFIG_SITEURL_MODEL", $config_siteurl);
        } else {
            $config_siteurl = $Config['siteurl'];
        }
 		define("CONFIG_SITEURL_MODEL", $config_siteurl);
        $this->assign("config_siteurl", $config_siteurl);
 		$this->assign("Config", $Config);
		//dump($Config);
//        //分配当前操作名到模板  使用$Think.ACTION_NAME有时会有意外情况
//        $appinfo = array(
//            "action" => ACTION_NAME,
//            "group" => GROUP_NAME,
//            "module" => MODULE_NAME
//        );
//        $this->assign("appinfo", $appinfo);
    }
	
	 /**
     *  初始化当前登录用户信息
     */
    final protected function initUser() {
        //当然登陆用户ID
       // $usDb = service("Passport")->isLogged();
//
//        if ($usDb == false) {
//            return false;
//        }

        self::$Cache['uid'] = (int) $usDb['userid'];
        self::$Cache['username'] = $usDb['username'];
        $this->assign("uid", self::$Cache['uid']);
        $this->assign("username", self::$Cache['username']);
      //  if (defined("IN_ADMIN") && IN_ADMIN) {
//            $User = S("Admin_User_" . self::$Cache['uid']);
//            if (!$User) {
//                $User = D("UserView")->where(array("id" => self::$Cache['uid']))->getField("id,id,username,nickname,last_login_time,last_login_ip,email,status,role_id,role_name");
//                $User = $User[self::$Cache['uid']];
//                S("Admin_User_" . self::$Cache['uid'], $User, 60);
//            }
//        } else {
//            $User = $usDb;
//        }
//
//        self::$Cache['User'] = $User;
//        $this->assign("User", self::$Cache['User']);
//        unset($usDb);
        return true;
    }
	 /**
     * 初始化模型 
     */
    final protected function initModel() {
        if (!F("Model")) {
            D("Model")->model_cache();
        }
       // //栏目缓存
//        if (!F("Category")) {
//            D("Category")->category_cache();
//        }
//        //20120615 增加
//        if (!is_file(RUNTIME_PATH . "content_output.class.php")) {
//            import("Cacheapi");
//            $Cache = new Cacheapi();
//            $Cache->model_content_cache();
//        }
//        //会员相关必要缓存
//        if(!F("Model_Member") || !F("Member_group")) {
//            D("Model")->MemberModelCache();
//            D("Member_group")->Membergroup_cache();
//        }
    }
	 /**
     * 验证码验证
     * @param type $verify 验证码
     * @param type $type 验证码类型
     * @return boolean
     */
    static public function verify($verify, $type = "verify") {
        $verifyArr = session("_verify_");
        if (!is_array($verifyArr)) {
            $verifyArr = array();
        }
        if ($verifyArr[$type] == strtolower($verify)) {
            unset($verifyArr[$type]);
            if (!$verifyArr) {
                $verifyArr = array();
            }
            session('_verify_', $verifyArr);
            return true;
        } else {
            return false;
        }
    }
 }
?>